前兩天我們稍微說明了一下對於看待資料的一些基本觀念
那今天就來開始實際對資料做一些操作吧
環境需求:
- python程式環境
程度需求:
- 對python有基本認知
- 有使用過Excel或其他試算表軟體
這邊我們將會使用pandas套件來進行處理
而這裡的pandas其實是panel data的縮寫的意思
基本上可以想像成是python界中的Excel(但可以做到的事情更多)
import pandas as pd # 使用pandas套件來處理表格
df = pd.read_excel("sample.xlsx") # 讀取檔案到資料框(DataFrame)裡面
df
場景:
小美表示今天早上她量的體重明明只有49.9,為什麼可以寫50.1呢
那我們要怎麼修改呢?
如果是在Excel上的話,當然就是滑鼠移過修改就好了
那在python裡面要怎麼選擇呢?
df.iloc
數位置就像是國中時候教過的二維座標的表示方式,即(第幾row,第幾col)
以這邊場景的例子,我們需要找到(1,3)
的資料,因此這樣即可找到我們要的資料
df.iloc[1,3] # 使用位置來選擇
# 50.1
補充說明:
台灣和中國對於行和列的定義是相反的
因此如果在Google到相關的資料的時候記得自己轉換一下
- row:台灣為列,中國為行
- col:台灣為行,中國為列
造成這樣差異的原因是最早的中文書寫方式都是直式
而書寫的方向自然就定義為行
但後來文字受到西方文化的影響逐漸改為橫式為主流
此時中國的做法是另新的文字方向為行
而台灣的做法則是沿用原本的方向當作行,但更改文字方向
因此就造成了兩邊用法的差異
筆者自己是為了避免混淆,都儘量用column
,row
來描述
df.loc
給名稱就像是Excel裡面可以用D3
來選擇這一格
我們也可以用名稱的方式來選擇,即(哪個row,哪個col)
df.loc[1,"體重"] # 使用名稱來選擇
# 50.1
那有了上面的找到對應的位置之後,要修改就不是什麼問題了
# 方法1
df.iloc[1,3] = 49.9
# 方法2
df.loc[1,"體重"] = 49.9
# 檢查一下
df
sum(df["身高"])/len(df) # 平均身高
sum(df["體重"])/len(df) # 平均體重
這邊我們想要計算一下大家的BMI,根據BMI = 身高 / 體重^2
df["BMI"] = df["體重"] / (df["身高"]/100)**2 # 計算BMI
df["BMI"]
今天很基本的講解了一下要如何用pandas在表格中選取資料
雖然很基本但卻是很容易搞混iloc
和loc
兩個用法的地方
因此使用的時候要稍微注意一下哦> <